import axios, { AxiosInstance, AxiosRequestConfig } from 'axios'
import router from '@/router'


const service: AxiosInstance = axios.create({
  baseURL: import.meta.env.VITE_API_URL, // 从.env读取（需VITE_前缀）
  timeout: 10000,
  headers: { 'Content-Type': 'application/json' }
})

// 请求拦截器
service.interceptors.request.use(config => {
  // const token = localStorage.getItem('token')
  // if (token) config.headers.Authorization = `Bearer ${token}`
  return config
})


// 响应拦截器（统一错误处理）
service.interceptors.response.use(
  response => {
    // 检查业务逻辑中的错误码（如 code: 401）
    if (response.data?.code === 401) {
      router.push('/noaccess') // 使用可选链操作符避免报错
      return Promise.reject(new Error(response.data.msg)); // 终止请求链
    }
    return response.data;
  },
  error => {
    // 处理 HTTP 状态码 401（如果后端正确返回）
    if (error.response?.status === 401) {
      router.push('/noaccess') // 使用可选链操作符避免报错
    }
    return Promise.reject(error);
  }
);

export default service